/*
*  Copyright 2019-2020 Zheng Jie
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package me.zhengjie.business.domain;

import lombok.Data;
import cn.hutool.core.bean.BeanUtil;
import io.swagger.annotations.ApiModelProperty;
import cn.hutool.core.bean.copier.CopyOptions;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import javax.validation.constraints.*;
import java.sql.Timestamp;
import java.io.Serializable;
import java.util.Date;

/**
* @website https://el-admin.vip
* @description /
* @author xiahongbo
* @date 2025-01-09
**/
@Entity
@Data
@Table(name="PRIC_RGST_INS")
public class PricRgstIns implements Serializable {

    @Id
    @GenericGenerator(name = "hibernate-uuid", strategy = "uuid")
    @GeneratedValue(generator = "hibernate-uuid")
    @Column(name = "PRIC_RGST_INS_ID")
    @ApiModelProperty(value = "主键ID")
    private String pricRgstInsId;

    @Column(name = "LONGTERM_REG_ID")
    @ApiModelProperty(value = "长护登记ID")
    private String longtermRegId;

    @Column(name = "LONGTERM_TRT_APPY_ID")
    @ApiModelProperty(value = "待遇申请ID")
    private String longtermTrtAppyId;

    @Column(name = "LONGTERM_EVAL_TASK_ID")
    @ApiModelProperty(value = "评估任务ID")
    private String longtermEvalTaskId;

    @Column(name = "PSN_NO")
    @ApiModelProperty(value = "参保人员编号")
    private String psnNo;

    @Column(name = "PSN_NAME")
    @ApiModelProperty(value = "参保人姓名")
    private String psnName;

    @Column(name = "GEND")
    @ApiModelProperty(value = "参保人性别")
    private String gend;

    @Column(name = "CERT_TYPE")
    @ApiModelProperty(value = "参保人证件类型")
    private String certType;

    @Column(name = "CERTNO")
    @ApiModelProperty(value = "参保人证件号码")
    private String certno;

    @Temporal(TemporalType.DATE)
    @Column(name = "BRDY")
    @ApiModelProperty(value = "参保人出生日期")
    private Date brdy;

    @Column(name = "INSUTYPE")
    @ApiModelProperty(value = "参保人险种类型")
    private String insutype;

    @Column(name = "INSU_ADMDVS")
    @ApiModelProperty(value = "参保人所属医保区划")
    private String insuAdmdvs;

    @Column(name = "LONGTERM_EVAL_LV")
    @ApiModelProperty(value = "失能评估等级")
    private String longtermEvalLv;

    @Column(name = "NURSCARE_ORG_NO")
    @ApiModelProperty(value = "护理机构编号")
    private String nurscareOrgNo;

    @Column(name = "NURSCARE_ORG_NAME")
    @ApiModelProperty(value = "护理机构名称")
    private String nurscareOrgName;

    @Column(name = "SUP_MEDSTFF_NO")
    @ApiModelProperty(value = "主管护理员编码")
    private String supMedstffNo;

    @Column(name = "SUP_MEDSTFF_NAME")
    @ApiModelProperty(value = "主管护理员姓名")
    private String supMedstffName;

    @Column(name = "NURSCARE_WAY")
    @ApiModelProperty(value = "护理方式")
    private String nurscareWay;

    @Column(name = "TRT_FLAG")
    @ApiModelProperty(value = "享受待遇标志")
    private String trtFlag;

    @Temporal(TemporalType.DATE)
    @Column(name = "BEGNTIME")
    @ApiModelProperty(value = "开始时间")
    private Date begntime;

    @Column(name = "DISECODE")
    @ApiModelProperty(value = "疾病编码")
    private String disecode;

    @Column(name = "DISENAME")
    @ApiModelProperty(value = "疾病名称")
    private String disename;

    @Column(name = "DEPT_NAME")
    @ApiModelProperty(value = "科室名称")
    private String deptName;

    @Column(name = "NURSCARE_REGN")
    @ApiModelProperty(value = "照护区")
    private String nurscareRegn;

    @Column(name = "BEDNO")
    @ApiModelProperty(value = "床位号")
    private String bedno;

    @Column(name = "YEAR")
    @ApiModelProperty(value = "年度")
    private String year;

    @Column(name = "FIX_BLNG_ADMDVS")
    @ApiModelProperty(value = "定点机构所属医保区划")
    private String fixBlngAdmdvs;

    @Column(name = "LONGTERM_ORG_NURSCARE_REGN_ID")
    @ApiModelProperty(value = "长期护理机构护理区ID")
    private String longtermOrgNurscareRegnId;

    @Column(name = "LONGTERM_ORG_BED_ID")
    @ApiModelProperty(value = "长期护理机构床位ID")
    private String longtermOrgBedId;

    @Column(name = "RELS_MEDSTFF_NO")
    @ApiModelProperty(value = "亲属护理员编号")
    private String relsMedstffNo;

    @Column(name = "RELS_MEDSTFF_NAME")
    @ApiModelProperty(value = "亲属护理员姓名")
    private String relsMedstffName;

    @Column(name = "BANK_TYPE_CODE")
    @ApiModelProperty(value = "银行行别代码")
    private String bankTypeCode;

    @Column(name = "BANK_ID")
    @ApiModelProperty(value = "开户银行ID")
    private String bankId;

    @Column(name = "BANK_NAME")
    @ApiModelProperty(value = "开户银行名称")
    private String bankName;

    @Column(name = "BANKACCT")
    @ApiModelProperty(value = "银行账号")
    private String bankacct;

    @Column(name = "BANK_ACCTNAME")
    @ApiModelProperty(value = "银行户名")
    private String bankAcctname;

    @Column(name = "OUT_LIVE_FLAG")
    @ApiModelProperty(value = "异地居住标志")
    private String outLiveFlag;




    public void copy(PricRgstIns source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
}